package com.stellar.pay.core.entity;

import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Data
public class OrderQueryResultDTO {
    /**
     * 基础信息
     */
    private String appId; // 应用ID

    private String mchId; // 商户号

    private String outTradeNo; // 商户订单号

    private String transactionId; // 微信支付订单号

    private String tradeType; // 支付类型

    private String tradeState; // 交易状态

    private String tradeStateDesc; // 交易状态描述

    private LocalDateTime successTime; // 支付成功时间

    /**
     * 支付金额信息
     */
    private AmountDTO amount;

    /**
     * 支付用户信息
     */
    private PayerDTO payer;

    /**
     * 优惠信息
     */
    private List<PromotionDetailDTO> promotionDetails;

    /**
     * 其他扩展字段
     */
    private String attach; // 附加数据

    private String bankType; // 银行类型

    private SceneInfoDTO sceneInfo; // 场景信息

    @Data
    public static class AmountDTO {
        private Integer total; // 总金额（分）
        private String currency; // 货币类型
    }

    @Data
    public static class PayerDTO {
        private String openid;
    }

    @Data
    public static class PromotionDetailDTO {
        private String couponId;
        private String name;
        private Integer amount;
    }

    @Data
    public static class SceneInfoDTO {
        private String deviceId;
    }
}